昨天(Laravel起手式&Nginx設定)我們在Laradock裡面創建了Nginx檔案,
Nginx是網路伺服器,幫助瀏覽器找到正確的檔案位置。
Nginx 是一個反向代理伺服器,代理要被訪問的資源。
說到反向,那正向是什麼呢?正向代理是代理客戶端,通常就是我們啦!
例如常見的正向代理:VPN,幫助我們保護IP,繞過一些區域性的限制,並提高我們的訪問速度,
訪問伺服器。
而反向代理反過來就是代理伺服器,
如這邊解釋,就是會幫你轉到內網去取得我們的資源。
可以幫伺服器先監控第一層訪問,防止網路攻擊,
並控制訪問量,做負載平衡。
啟動Nginx反向代理後,其實就是在80端口啟動Socket服務進行監聽,
如圖,Nginx涉及Master進程和Worker進程。
訪問量太大的話,nginx可以將請求分配給不同伺服器(upstream),
但現階段也用不到,我們先有基本概念就好。
就從上一篇用到的career-expo.conf
探討一下conf檔案吧
BTW,為什麼是80 port:
80是http協議的默認端口,在默認情況下,端口80(port 80)是伺服器監聽網頁客戶端請求的端口,在輸入網址時其實瀏覽器就幫我們輸入協議了,所以當我們在輸入http時(如http://ithelp.ithome.com.tw/) ,其實就是訪問80端口 (http://ithelp.ithome.com.tw/:80)
引用:
80端口、8080端口和443端口是什么用的
laradock的nginx
範例檔案
server {
listen 80;
listen [::]:80;
server_name career-expo.localhost;
root /var/www/rachel-projects/career-expo/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
之後有機會再深入探討!